Ubuntu18/20安装配置Bochs2.6.9与编译运行GeekOS | 您所在的位置:网站首页 › bochs windows7下载 › Ubuntu18/20安装配置Bochs2.6.9与编译运行GeekOS |
Ubuntu20.04/18.04安装Bochs2.6.9编译运行GeekOS
请注意:博主仅测试在Ubuntu18和Ubuntu20上成功安装Bochs-2.6.9、nasm-2.08.02、geekos-0.3.0,其它版本可能会出现不兼容的情况。若安装调试过程中出现各种奇奇怪怪的错误,请百度报错信息,或给我留言。博主也是在多次失败的情况下,总结各位大佬的解决方案,才成功的。 1.在电脑上安装Linux操作系统安装过程就不多介绍了,放个Ubuntu的种子,需要的自行下载 Ubuntu 18.04 Desktop (amd64)magnet:?xt=urn:btih:286D2E5B4F8369855328336AC1263AE02A7A60D5&dn=ubuntu-18.04.4-desktop-amd64.iso Ubuntu 20.04 Desktop (amd64)magnet:?xt=urn:btih:9FC20B9E98EA98B4A35E6223041A5EF94EA27809&dn=ubuntu-20.04-desktop-amd64.iso&xl=2715254784 Ubuntu20安装成功如下图 安装Bochs之前需要联网安装下面这些软件: sudo apt-get install build-essential sudo apt-get install xorg-dev sudo apt-get install bison sudo apt-get install libgtk2.0-dev sudo apt-get install gcc-multilib下载安装速度可能较慢,需要点耐心,如果下载中出现失败,用手机开个热点给电脑试下 3.安装Bochs2.6.9下载Bochs2.6.9 进入链接: 下载地址. 找到bochs-2.6.9.tar.gz并下载保存 解压bochs-2.6.9.tar.gz 可以直接鼠标右键选择“提取到此处” 安装Bochs 进入bochs-2.6.9目录 在终端输入下列命令 sudo ./configure --enable-debugger --enable-disasm sudo make sudo make install启动Bochs 直接在终端输入bochs启动,这里可能会报错,不用着急,百度可以解决。 若没有报错,则会出现Bochs的菜单 但是建议选项为[2],没有找到配置文件 配置Bochs 当我们在终端输入bochs后, Bochs会自己在当前目录顺序寻找以下文件作为默认配置文件: .bochsrc bochsrc bochsrc.txt bochsrc.bxrc(仅对Windows有效) 我们可以自己创建一个名为.bochsrc的文件,来指定Bochs配置我们想要的虚拟机 (请将.bochsrc文件放在 geekos-0.3.0/src/project0/build 目录下。没有geekos?请看第4步!在此目录下会有一个自带的.bochsrc文件,但它是隐藏文件) 在终端输入 sudo gedit .bochsrc粘贴以下内容(注意这里要确保romimage和vgaromimage这两项的路径是正确的,不然虚拟机启动时会提示“couldn’t open ROM image file”的错误,还有Bochs的版本不一样的话,键盘设置的方式也不太一样): ################################################################# # Bochs的配置文件 # Configuration file for Bochs ################################################################# # how much memory the emulated machine will have megs: 32 # filenameof ROM images romimage:file=/usr/local/share/bochs/BIOS-bochs-latest vgaromimage:file=/usr/local/share/bochs/VGABIOS-lgpl-latest # which disk image will be used 这个是启动软盘 floppya:1_44=fd.img, status=inserted # choose the boot disk 确定启动方式 boot: floppy # where do we send log messages? log: bochsout.txt # disable the mouse mouse: enabled=0 # enable key mapping ,using US layout as default keyboard:keymap=/usr/local/share/bochs/keymaps/x11-pc-us.map保存退出 4.安装nasm和下载GeekOS 下载安装nasm 进入链接: 下载地址. 选择nasm-2.08.02.tar.gz,下载保存 解压后进入nasm-2.08.02目录 依次输入以下命令: ./configure sudo make sudo make install再在终端输入nasm -version 出现2.08.02,OK继续! 下载GeekOS 直接去GeekOS下载 下载完成后解压 5.编译GeekOS进入目录 geekos-0.3.0/src/project0/build 终端输入 sudo make depend sudo make会报错,因为Makefile在make时将warnings全部视为了errors 于是我们打开当前目录下的Makefile 找到第149行的-Werror: CC_GENERAL_OPTS := $(GENERAL_OPTS) -Werror修改为: CC_GENERAL_OPTS := $(GENERAL_OPTS)在Makefile文件的第148行 GENERAL_OPTS := -O -Wall $(EXTRA_C_OPTS) 后面添加编译选项: (高版本的Ubuntu会有优化问题,导致project运行时线程报错,所以此处可以把-O改成-O0,取消优化) -fno-stack-protector然后把Makefile文件中的100行至109行修改为如下内容: TARGET_CC := $(TARGET_CC_PREFIX)gcc -m32 # Host C compiler. This is used to compile programs to execute on # the host platform, not the target (x86) platform. On x86/ELF # systems, such as Linux and FreeBSD, it can generally be the same # as the target C compiler. HOST_CC := gcc -m32 # Target linker. GNU ld is probably to only one that will work. TARGET_LD := $(TARGET_CC_PREFIX)ld -m elf_i386然后输入命令: sudo make clean sudo make depend sudo make会出现 cat geekos/fd_boot.bin geekos/setup.bin geekos/kernel.bin > fd.img 即为编译成功 注意:这里的fd.img是软盘文件,和.bochsrc文件相关,非常重要!如果启动Bochs出现黑色界面,但是有弹窗报错,多半和它有关。 6.运行GeekOS进入目录 geekos-0.3.0/src/project0/build 终端输入:bochs 会出现Bochs菜单,且建议选项为[6]意思是开始模拟 输入"6"弹出黑色页面,然后再在命令行输入"c" 如果出现错误提示,可能是因为软盘映像中没有找到编译好的可执行程序,所以需要我们导入程序。 可以自己编写一段程序,也可以使用自带的示例程序,将编译好的引导扇区写进软盘。 Linux下自带了dd命令可以很方便地进行软盘读写: sudo dd if=main.o of=fd.img bs=512 count=1 conv=notrunc("main.o"是要写入软盘的程序文件,“fd.img"是目的软盘,可以用自己建的软盘"a.img”,也可以用自动生成的) 重新运行GeekOS,看到Bochs界面上出现的“Welcome to GeekOS!”,恭喜你成功了! 感谢观看如果文章对你有用,点个赞再走吧,有问题的可以评论区讨论。 |
CopyRight 2018-2019 实验室设备网 版权所有 |